package com.sping.gobang.common.util;

import org.springframework.util.DigestUtils;
import org.springframework.util.StringUtils;

import java.nio.charset.StandardCharsets;
import java.util.UUID;

public class SecurityUtil {
    //对密码进行加密
    /**
     * 生成最终密码 salt+md5(salt+明文）
     */
    public static String encrypt(String password){
        String salt = UUID.randomUUID().toString().replace("-", "");
        String s = DigestUtils.md5DigestAsHex((salt + password).getBytes(StandardCharsets.UTF_8));
        return(salt+s);
    }
    /**
     * 验证密码是否正确
     */
    public static boolean verify(String password,String finalPassword){
        // finalPassword是已经加密的密码了，放在数据库中的
        //进行校验
        if(!StringUtils.hasLength(password)||!StringUtils.hasLength(finalPassword)){
            return false;
        }
        if(finalPassword.length()!=64){
            return false;
        }
        String salt=finalPassword.substring(0,32);
        String s = DigestUtils.md5DigestAsHex((salt + password).getBytes(StandardCharsets.UTF_8));
        return finalPassword.equals(salt+s);

    }
}
